#ifdef _MSC_VER
#define _CRT_SECURE_NO_WARNINGS
#endif

#include <iostream>

class masina
{
protected:
	char *nume;
	char*culoare;
	char*transmisie;
public:
	virtual char* getnume()
	{
		return nume;
	}
	virtual void setnume(char*x)
	{
		strcpy(nume, x);
	}
	virtual void adauga(){}
	virtual void sterge(){}
};

class sedan :masina
{
private:
	char* dotari;
public:
	sedan()
	{
		nume = new char[20];
		dotari = new char[20];
	}
	char* getnume()
	{
		return nume;
	}
	void setnume(char*x)
	{
		strcpy(nume, x);
	}
	void adauga(char*vnume, char*vdotari)
	{
		strcpy(nume, vnume);
		strcpy(dotari, vdotari);
	}

};
class coupe :masina
{
private:
	char* motorizare;
public:
	coupe()
	{
		nume = new char[20];
		motorizare = new char[20];
	}
	char* getnume()
	{
		return nume;
	}
	void setnume(char*x)
	{
		strcpy(nume, x);
	}
	void adauga(char*vnume, char*vmotorizare)
	{
		strcpy(nume, vnume);
		strcpy(motorizare, vmotorizare);
	}

};
class mini :masina
{
private:
	char* dimensiuni;
public:
	mini()
	{
		nume = new char[20];
		dimensiuni = new char[20];
	}
	char* getnume()
	{
		return nume;
	}
	void setnume(char*x)
	{
		strcpy(nume, x);
	}
	void adauga(char*vnume, char*vdimensiuni)
	{
		strcpy(nume, vnume);
		strcpy(dimensiuni, vdimensiuni);
	}

};

class clienti{
	char *nume;
	int varsta;
	int nrmasini;
	masina * listamasini;
public:
	clienti()
	{
		nume = new char[20];
		listamasini = new masina[20]; //init masini
		nrmasini = 0;
	}
	void set_nume(char* nume1)
	{
		strcpy(nume, nume1);
	}
	void set_varsta(int v)
	{
		varsta = v;
	}
	void add_car(masina car)  ///adaugare_masini
	{
		listamasini[nrmasini] = car;
	}
	void remove_car(masina car) //stergere masini
	{
		int point = -1;
		for (int i = 0; i < nrmasini; i++) if (strcmp(listamasini[i].getnume(), car.getnume())==0) point = i;
		for (int j = point; j < nrmasini - 1; j++) listamasini[j] = listamasini[j + 1];
		//free(listamasini[nrmasini - 1]);
		nrmasini--;
	}
};

void main()
{
	char*nume = new char[20];
	int varsta;
	clienti *client1 = new clienti();
	sedan *dacia = new sedan();
	printf("Nume client si varsta");
	scanf("%s %d", nume, &varsta);
	client1->set_nume(nume);
	client1->set_varsta(varsta);
	printf("Nume masina");
	scanf("%s", nume);
	dacia->setnume(nume);
}